#include<stdio.h>
#include<math.h>

void printdim(int n);

int main()
{
    printdim(6);    

    return 0;
}

void printdim(int n)
{
    if (n % 2 == 0)
    {
        printf("error input!\n"); 
        return;
    }

    int i, j;
    for (i = 0; i != n; ++i) /*两层循环外层打印行，内层打印列*/
    {
        int count1, count2;

        /*计算三部分的边界，分成两类，中心以前和中心以后的边界计算方法不同*/
        if (i <= n / 2)
        {
            count1 = i * 2 + 1;
            count2 = n / 2 - i;
        }
        else
        {
            count1 = (n - i) * 2 - 1;
            count2 = i - n / 2;
        }

        /*每一行分成三部分，
         * 第一部为空格加\t，第二部分为*加\t，第三部分和第一部分一样
        */

        for (j = 0; j < count2; ++j) 
        {
            printf(" \t");
        }

        for (; j < count2 + count1; ++j)
        {
            printf("*\t");
        }

        for (; j < n; ++j)
        {
            printf(" \t");
        }

        printf("\n");
    }
}
